package com.yourenbang.lingyun.transaction.web.service.fund.fundopt;

import com.yourenbang.lingyun.core.message.Result;
import com.yourenbang.lingyun.transaction.web.domain.po.FundAccountChangePlan;

public interface FundOptCancelService {

    /**
     * 撤销资金变动,已完成的无法撤销
     * 与 {@link #cancelBalancePay(FundAccountChangePlan)} 的区别,本方法由于资金发起、接收方均有冻结动作,需归还已解冻资金
     *
     * @param fundAccountChangePlan
     * @return
     */
    Result cancel(FundAccountChangePlan fundAccountChangePlan);

    /**
     * 撤销余额支付资金变动,已完成的无法撤销
     *  与 {@link #cancel(FundAccountChangePlan)} 的区别,本方法用于余额支付,撤销时仅撤销发起方资金,接收方此时资金无变动,无需操作
     *
     *
     * @param fundAccountChangePlan
     * @return
     */
    Result cancelBalancePay(FundAccountChangePlan fundAccountChangePlan);
}
